var Action_Form = function () {
    var handleValidation_Action = function() {

        var form_action = $('#form-action');
        var error_action = $('.alert-error');

        form_action.validate({
            errorElement: 'span', //default input error message container
            errorClass: 'help-inline', // default input error message class
            focusInvalid: false, // do not focus the last invalid input
            ignore: "",
            rules: {
                actionid: {
                    minlength: 2,
                    regex: /\b[A-Z|\-|\_]+\b/,
                    required: true
                },
                actionname: {
                    minlength: 1,
                    regex: /\b[a-z|A-Z]+\b/,
                    required: true
                }
            },
            messages: {
                actionid: {
                    minlength: 'Tối thiểu 2 ký tự',
                    regex: "Chỉ nhập các ký tự <strong>A-Z</strong>",
                    required: 'Bắt buộc nhập'
                },
                actionname: {
                    minlength: 'Tối thiểu 1 ký tự',
                    regex: "Chỉ nhập các ký tự <strong>a-z</strong> và <strong>A-Z</strong>",
                    required: 'Bắt buộc nhập'
                }
            },
            invalidHandler: function (event, validator) { //display error alert on form submit              
                error_action.show();
                App.scrollTo(error_action, -200);
            },
            highlight: function (element) { // hightlight error inputs
                $(element)
                .closest('.help-inline').removeClass('ok'); // display OK icon
                $(element)
                .closest('.control-group').removeClass('success').addClass('error'); // set error class to the control group
            },
            unhighlight: function (element) { // revert the change done by hightlight
                $(element)
                .closest('.control-group').removeClass('error'); // set error class to the control group
            },
            success: function (label) {
                label
                .closest('.control-group').removeClass('error').addClass('success').end()
                .remove(); // set success class to the control group
            },
            submitHandler: function (form) {
                error_action.hide();
                
                form.submit();
            }
        });
    }

    return {
        init: function () {
            
            jQuery.validator.addMethod("regex", function (value, element, regexp) {
                var re = new RegExp(regexp);
                return this.optional(element) || re.test(value);
            },
            "Giá trị không hợp lệ"
            );
            
            handleValidation_Action();
        }
    };
}();